rnMac  v0.5b
                                                            written by Roy Wood

                                                            rrwood@canrem.com

                                                    ©1993 Silicon Angst Software
                                                           122 Britannia Avenue
                                                         London, Ontario,CANADA
                                                                   N6H 2J5

rnMac is shareware, so if you use it, send $25 (money order or Canadian cheques only, please) to me, Roy Wood, at the address listed above.  You know that UUPC/ FernMail/ ToadNews/ rnMac together will cost you a LOT less than uAccess, so support the authors of these fine shareware products, or there won't be any fine shareware products anymore....

I've been told that Eudora is now compatible with UUPC, so you might like to look at it if you're looking for a mail interface.  Many people swear by it, but I've not tried it yet.

rnMac is a UseNet newsreader/mailer for Macintosh computers.  If you don't know what UseNet or UseNet news is, you probably don't have much need for this program.  Conversely, if you're an old netlander, you'll know what "rn" is, and you'll also realize that this program is really not a port of "rn," and that I should probably call it something else.

There are a number of newsreaders available for the Mac, though most are intended for use with Mac TCP/IP and an NNTP news server (I think NewsWatcher can be used in demo mode to read from a local hard drive, and TheNews may soon be usable in a uucp context, too).  rnMac is intended for use on stand-alone Macs that get their newsfeed via something like UUPC and ToadNews.  rnMac doesn't know anything about modems, uucp, unbatching, or expiring; all it knows how to do is to read articles from a folder on your hard drive (and it does that pretty well, if I do say so).

There's really not much to be explained about the use of rnMac.  Once you get your newsfeed working (!), you should be set to read news.  The only thing to fiddle with is the "rnMac SETTINGS" file— it should contain the following 'STR ' named resources, which you should set appropriately for your machine (use the "Edit rnMac Settings" option under the Edit menu to do this, or just use ResEdit).  Most of these are the same as the 'STR ' resources UUPC, Fernmail, and ToadNews use, so you're probably going to get good at setting these things.   With luck, these redundant resources will be centralized someday....

"NEWSFOLDER" - the FULL PATHNAME to the news folder on your hard drive, e.g. "MacintoshHD:UUPC:News"

"MAILDIR" -  the FULL PATHNAME to the mail folder on your hard drive, e.g. "MacintoshHD:UUPC:Mail"

"USERNAME" - your user-id, e.g. rrwood

"DEFAULT FONT" and "DEFAULT FONT SIZE" - the default font/size for text windows, e.g. "Courier" and "10".  This can be altered via a menu from within the program.

"NODENAME" - the name of your uucp node, e.g. "angst"

"SEQUENCEFILE" - the name of the sequence file used by UUPC, e.g. "SEQF"

"CONFDIR" - the UUPC configuration directory, e.g. "MacintoshHD:UUPC:Config"

"MAILSERVICE" - the name of your primary uucp neighbour node, e.g. "uuisis"

"SPOOLDIR" - the name of the UUPC spool directory, e.g. "MacintoshHD:UUPC:Spool"

"DOMAIN" - your full uucp domain name, e.g. "angst.uucp"

"TIMEDIFF" - your time difference, e.g. -0800 (PST)

"MAXMAILSIZE" - the maximum size (in bytes) of outgoing messages; mail larger than this size is split into multiple messages.  e.g. 30000

"MAXLINEWIDTH" - the maximum width in columns after which lines will be split (this is applied as the outgoing mail/article is spooled), e.g. 75

"SIGFILE" - name of signature file which is automatically included at the end of the outgoing mail or news article

"ARTICLESFOLDER" - folder where saved articles will be stored by default

"REALNAME" - your name as you wish it to be displayed in the From: header line of your outgoing mail or news; e.g. “Roy Wood”

"TEMPDIR" - if this 'STR ' resource is present (usually not), it is taken to be the name of the folder into which rnMac will store all its temporary files (i.e. subject lists and active groups list); this is provided for those of you who have read access to a remote file system's news database but can't write to the remote directory.  Set this resource as the full pathname (including volume)of a local directory into which rnMac can write its junk.  By the way, this “full pathname” stuff really sucks.  Surely with System 7's enhanced file system and alias support, there should be an easier way to do this.  And why haven't I written a simple interface for setting these parameters?  Geez, considering how much you've paid for this, wouldn't you expect something better?  You'd think Roy had a fulltime job or a life or something that kept him from writing free software all day....

Aside from setting up the "rnMac SETTINGS" file, this program is pretty much just plug-and-play.  The menus are pretty easy to understand, and it works about the way you'd expect it to.  Just double-click everything in sight and you should be fine.

rnMac generates a database describing the groups/articles available as needed (this may seem unnecessary to you, but it is necessary for what I plan to do with the program later).  This database consists of a list of active newsgroups, as well as lists of current articles and subjects for each group.  If the program seems a little slow and disk-bound when you start up or list all active newsgroups, it's because it is busily scanning the news folder for the information it needs.  rnMac is intelligent enough to do only essential database construction, so it should not be a major bottleneck.  By the way, the "Generate Database" command is pretty useless to just about everyone but me, so don't worry too much about it.

To subscribe to groups, choose "Show All Newsgroups" under the Groups menu, click on the group you're interested in, and then choose "Subscribe" from the Groups menu.  You can also just double-click on any of the groups listed in the "Active Groups" window.  When you subscribe to a group, it is automatically opened, though you can prevent this if you hold down the option key.  Subscribing to a group simply adds its name and some other information to the newsrc file.  (The newsrc file is pretty much identical to its Unix counterpart.)

If you wish to remove a group from your newsrc, click once on it in the "Subscribed Groups" window (it will be highlighted), and then choose "Unsubscribe" from the Newsgroups menu.

The "Articles" menu allows you to do a lot of useful things within a group window (e.g. kill subjects, list all subjects, follow a subject thread, etc.).  If you are playing around with the status of articles, you will notice that they are flagged with a check to indicate that they are marked as read in your newsrc file.

The "Text" menu is primarily used to set the default font/size of text by altering the "DEFAULT FONT" and "DEFAULT FONT SIZE" resources in the "rnMac SETTINGS" file.  By default, the font and size of text in all windows is affected, though this can be overridden.  In order to change the font/size for just the front window (and not the defaults!), hold down the option key as you make your menu selection.   Via a stroke of serendipity, rnMac allows the text in every window to appear in a different font/size, though I can't imagine why anyone would want to do so (maybe rec.humor.funny in San Francisco?).  And yes, rnMac even remembers fonts/sizes between sessions!  (use ResEdit to discover the secret undocumented 'STR ' resources....)

rnMac does an acceptable job of acting as a mail-reader, too.  You can read and send mail, and even do some nice things like save and edit messages as standard Mac text files.  You will be delighted to note that you can now edit files larger than 32K in size!  (Boy, was that a nuisance to get working.)

The aliasing features available via the "Send Mail To:" menu option are finally working.  You can define new aliases, edit or delete old aliases, or just send mail to an aliased address.  The catch is that the alias is expanded into the full address when the outgoing mail window is created, so you can't really add names to the "To:" or other header lines.  However, you can define an alias to include multiple target addresses (e.g. define alias "friends" as "rrwood@canrem jpmah@descartes").  Note that aliases are NOT expanded recursively, so you can't define "roy" as "rrwood@canrem" and "john" as "jpmah@descartes", and then define "friends" as "roy john".  The "rnMac Aliases" file is just a textfile, so you can edit it manually, or use rnMac to make changes.

rnMac will split outgoing mail (not articles....yet) into smaller pieces whose size is dictated by the MAXMAILSIZE setting.  Note that this size restriction is approximate at best, and does not account for the mail header!

Oh— and about MultiFinder and System 7.  rnMac is not Multi-Finder aware yet, though it should run fine under it.  The mailbox routines are smart enough to automatically recognize the presence of new mail, but the only way to see new articles is to close the group's window and then reopen the group.  Note that when I say "new" articles, I mean articles that ToadNews (which is running in the background) has placed into the group folder since the group's window was last opened.

I'm still working on improving rnMac, so drop me a note with your suggestions for improvement.  Currently, I can be reached as “rrwood@canrem.com” or “rrwood@canrem.uucp”.  If you're interested, I'm planning to make rnMac compatible with LocalTalk NNTP servers, which will make things simple for anyone wishing to provide news/mail on a LocalTalk network.  Right now you can do this by setting up a file-server (or shared volume with system 7) with the news files on it, and then just fiddle with the SETTINGS file to point to the server.

Things I Still Need To Do:

-Too many things to mention here
- retire on the profits from all the shareware fees I've received. FYI, Stefan Zingg, Joe Morrison, and Stuart Castergine have already registered their copies, despite the unfinished and volatile nature of rnMac.  Kudos to them and their faith in this thing.

Version History:

September 1992 - v 0.1.3b 
- initial release, made public so people would stop pestering me for a copy

January 1993 - v 0.2b
- added word-wrapping via TE32K TextEdit replacement hack
- fixed problem with occasional crashes while subscribing to new newsgroups (crashes were due to the old version of Think C which dereferenced a handle on the left side of an assignment statement before calling NewHandle on the right side of the statement, thus making life interesting for one and all)
- added “TEMPDIR” capability

February 1993 - v 0.3b
- added “SIGFILE” capability
- windows now remember last opened position even between sessions
- added capability to append mail/news to existing file
- fixed "Reply-To:" header line recognition code
- author of articles are now displayed beside subject
- newsrc window now displays count of unread articles for each group
- newsrc now saved after a newsgroup window is closed
- added smarter Subject: list builder; it now only rebuilds the list when the group's directory has been modified
- added logic to generate shorter subject list filenames for groups with names so long that they that would otherwise generate filenames longer than 32 characters
- added show/hide headers feature
- expanded acceptable range of article numbers beyond 32767, though I'm pretty sure it's unnecessary
- added support for arrow keys and page up/down keys in mail reader and article reader, as well as newsrc and groups windows
- added "Close Window" menu option
- added "Catch Up" menukey

March 1993 - v 0.4b
- major cleanup of code and introduction of new bugs =)
- fixed database code so that rnMac once again works even without a TEMPDIR
- made "Read Next" menu option into "Read Next Unread" (yes, I mean I changed the code, not just renamed the menu choice!)
- tweaked the hide/show headers logic so the From:, Subject:, Date:, Reply-To:, Newsgroups:, Message-ID: header lines are shown in terse mode
- added safer internal string copying routines (no more overwrites onto my code when copying oversized strings, though sprintf'ing is still a problem....)
- fixed a bug with TE32K text-insertion code
- ensured that the current article subject is visible/highlighted at all appropriate times (my definition of "appropriate", of course)
- added smarter "Save Textfile" code for saving articles in a file with the same name as the newsgroup
- fixed problem with Edit menu options in outgoing article window
- added capability to wrap text in article windows
- added capability to resize subject panes in newsgroup windows
- improved e-mail address extraction algorithm
- fixed bug encountered when generating subjects file for a group containing no articles
- combined the save/send dialogs for outgoing mail/articles
- added more complete RFC 1036 headers to outgoing news posting
- added full quoting of article for followup postings and mailed replies
- after an intense session with MacBugs in HS mode, I discovered a nasty bug in the newsrc code.  It seems that when I was obtaining the name of a group from the newsrc data structures, I was NOT checking for the correct delimiter, so I often ended up copying a lot of extra memory over top of things like, say, CODE resources in the heap.  Is that bad?  Well, it's fixed now, so those nasty crashes when subscribing to groups should have stopped for good.
- added ARTICLESFOLDER capability for saving articles

March 1993 - v 0.5b
- removed the SysBeep “feature” that caused rnMac 0.4b to beep constantly (a leftover debugging warning, activated when *((long *) 0L != 0x50FFC001, which I was doing as part of an attempt to catch dereferences of nil handles and pointers))
- added REALNAME capability
- added a “Discard” option to the alert shown when mail/news is being sent (sorry!)
- fiddled with newsrc and article reader to allow for really monstrous feeds and large files (i.e. use long's instead of¢'s wherever possible)
- Ha!  Got that #&^%!#*&^%$* bug in the newsrc.c code that caused all those crashes.  It's about time.
- improved TE32K code to v1.2 with modifications suggested by Lee A. Fyock <laf@mbunix.mitre.org> and Patrick C. Beard <beard@cs.ucdavis.edu>; TE32K now supports colour highlighting, better double-click + dragging, and also correctly returns a copy of the text via TE32KGetText